package com.egao.orderB.service;


import com.egao.common.core.damon.results.PageResult2;
import com.egao.common.core.web.JsonResult;
import com.egao.common.system.entity.User;
import com.egao.orderB.entity.Bill;
import com.egao.orderB.entity.BillFee;
import com.egao.orderB.entity.BillFeeWriteOffItem;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;

/**
 * 订单运费服务类
 * @author : Doman
 * @date : 2020-06-15 16:11:54
 * @version ：1.0
 */
public interface BillFeeService /*extends IService<BillFee>*/ {

    /**
     * 分页查询
     */
    //PageResult<BillFee> listPage(PageParam<BillFee> page);

    /**
     * 查询所有
     */
    //List<BillFee> listAll(Map<String, Object> page);

    /**
	 * 分页查询
	 * @param page
	 * @param billFee
	 * @return
	 */
	public JsonResult list(PageResult2<T> page, BillFee billFee, User loginUser) throws Exception;

    /**
	 * 分页查询
	 * @param page
	 * @param billFee
	 * @return
	 */
	public JsonResult listByFeeName(PageResult2<T> page, BillFee billFee, User loginUser) throws Exception;

	/**
	 * 获取list
	 * @param billFee
	 * @return
	 */
	public JsonResult list(BillFee billFee, User loginUser);

	/**
	 * 获取list
	 * @param billFee
	 * @return
	 */
	public JsonResult chartTotalFee(BillFee billFee, User loginUser);

	/**
	 * 获取list
	 * @param billFee
	 * @return
	 */
	public JsonResult exportList(BillFee billFee, User loginUser);

	/**
	 * 获取list
	 * @param bill
	 * @return
	 */
	public List<String> feeNames(Bill bill, List<String> feeNames, User loginUser);

	/**
	 * 获取list
	 * @param bill
	 * @return
	 */
	public List<String> feeNamesBillAndApply(Bill bill, List<String> feeNames, User loginUser);

	/**
	 * 根据Id查询
	 * @param billFee
	 * @return
	 */
	public BillFee getById(BillFee billFee);

	/**
	 * 保存
	 * @param billFee
	 * @param loginUser
	 * @return
	 */
	public JsonResult save(BillFee billFee, User loginUser);

	/**
	 * 保存
	 * @param billFeeList
	 * @param loginUser
	 * @return
	 */
	public JsonResult saveBatch(List<BillFee> billFeeList, User loginUser);

	/**
	 * 修改
	 * @param billFee
	 * @param loginUser
	 * @return
	 */
	public JsonResult update(BillFee billFee, User loginUser);

	/**
	 * 修改
	 * @param billFee
	 * @param loginUser
	 * @return
	 */
	public JsonResult updateFeeStateByBill(BillFee billFee, User loginUser);

	/**
	 * 修改
	 * @param billFee
	 * @param loginUser
	 * @return
	 */
	public JsonResult updateFeeState(BillFee billFee, User loginUser);

	/**
	 * 删除
	 * @param billFee
	 * @param loginUser
	 * @return
	 */
	public JsonResult remove(BillFee billFee, User loginUser);

	/**
	 * 修改箱号
	 * @param billFeeWriteOffItem
	 * @param loginUser
	 * @return
	 */
	public JsonResult updateWriteOffAccounts(BillFeeWriteOffItem billFeeWriteOffItem, User loginUser);

}
